"""在 Python 中，多态指的是不同类的对象可以通过相同的接口调用方法。
也就是说，不同的类可以实现同名的方法，允许相同的操作适用于不同类型的对象。
这样，程序可以根据对象的实际类型而非声明的类型来决定执行哪个方法，增强了代码的灵活性和可扩展性。"""

class Animal:
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("汪汪汪")#父类空内容，子类复写

class Cat(Animal):
    def speak(self):#同名方法
        print("喵喵喵")

def animal_sound(animal):
    #在 animal_sound 函数中，接收一个animal参数。这个参数可以是任何具有speak方法的对象。
    #无论是 Dog还是Cat，只要调用speak方法就能返回相应的声音。
    #通过这种方式，我们可以将不同类型的对象传递给 animal_sound 函数，而不需要关心它们的具体类型。
    animal.speak()
#创建对象
dog = Dog()
cat = Cat()
animal_sound(dog)
animal_sound(cat)

#空调的抽象父类设计标准
class AC:
    def cool_wind(self):
        """制冷"""
        pass
    def hot_wind(self):
        """制热"""
        pass
    def swing_l_r(self):
        """左右摆风"""
        pass

class Midea_AC(AC):
    def cool_wind(self):
        print("美的空调制冷")
    def hot_wind(self):
        print("美的空调制热")
    def swing_l_r(self):
        print("美的空调左右摆风")

class GREE_AC(AC):
    def cool_wind(self):
        print("格力空调制冷")
    def hot_wind(self):
        print("格力空调制热")
    def swing_l_r(self):
        print("格力空调左右摆风")

def make_cool(ac: AC):
    ac.cool_wind()
midea_ac = Midea_AC()
gree_ac = GREE_AC()

make_cool(midea_ac)
make_cool(gree_ac)